package com.sh.demo.qa.util;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.Properties;
import java.util.ResourceBundle;

public class PropertiesUtil {

	/**
	 * 获得属性文件的键值
	 * @param filePath 属性文件路径：在src目录下，a.properties；在指定目录下，得另外获取
	 * @param key 键
	 * @return String / null
	 */
	public static String getValue(String filePath, String key) {
		String value = null;
		FileInputStream in = null;
		try {
			Properties p = new Properties();
			in = new FileInputStream(filePath);
			p.load(in); // 加载输入流
			in.close();
			if(p.contains(key)){
				value = p.getProperty(key);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return value;
	}
	
	/**
	 * 设置属性文件的键值（如果对应的属性不存在，则自动增加该属性）
	 * @param filePath 属性文件路径：在src目录下，a.properties；在指定目录下，得另外获取
	 * @param key 键
	 */
	public static void setValue(String filePath, String key, String value) {
		FileInputStream in = null;
		try {
			Properties p = new Properties();
			in = new FileInputStream(filePath);
			p.load(in);
			in.close();
			p.setProperty(key, value);
			FileOutputStream out = new FileOutputStream(filePath);
			p.store(out, ""); // 写入输出流
			out.flush();
			out.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
    
	/**
	 * 获得属性文件的键值（加载到class目录的资源文件，默认是在class目录src同级中的属性文件）
	 * @param propertiesName 属性文件名：myres.properties中的myres
	 * @param key 键
	 * @return String / null
	 */
	public static String getValueByResourceBundle(String propertiesName, String key) {
		ResourceBundle resb = ResourceBundle.getBundle(propertiesName);
		return resb.getString(key);
	}

}
